/* Program pro ATmega starajici se o napeti z akcelerometru - pres A/D je vyhodnocovano, zda neprekrocilo danou */
/* mez. Pokud ano, pin PD2 nastaven do nuly*/
#include <avr/io.h>
#include <stdlib.h>
#include <util/delay.h>
#define t1 0
	

               


/*  deklarace vstupne vystupnich funkci          */

unsigned char getchar(void){

	while(!(UCSRA&0x80))
	;
	return UDR;
}



void putchar(unsigned char posli) {
	while (!(UCSRA&0x20))
	;
	UDR = posli;
} 

void puts (char *text) 
{ 
  while (*text) 
  putchar(*(text++)); 
}

/*      funkce pro obsluhu A/D                  */

int prevod(void){
	
	ADCSRA|=0x40;
	while (!(ADCSRA & 0x10));
	ADCSRA|=0x10;
	return ADCW;
}


int main(void)  {

	int  znak1[5], znak2[5], prumer1, prumer2, i;
/*****           inicializace uart              *****/
    
  	UCSRA|=0x00;                    
	UBRRL|=0x0C;  // nastaveni rychlosti pro krystal 1MHz
	UCSRB|=0x18;  // povolit vysilani a prijem
	UCSRC|=0x86;  // ramec dat:  8 datovych, 1 stop bit, bey parity 

/*           inicializace A/D prevodniku             */
  
    
	ADCSRA|=0xA7;
   	DDRC|=0x20;
	PORTC|=0x20;

    DDRB |= (1<<PB0);
	PORTB =(1<<PB0);
	DDRD |= (1<<PD2);
	PORTD =(1<<PD2);

	while(1) {    
        
		
	
	   
	   ADMUX=0x44;
		
		znak1[0]=prevod();
        _delay_ms(t1);
		znak1[1]=prevod();
        _delay_ms(t1);
		znak1[2]=prevod();
        _delay_ms(t1);
		znak1[3]=prevod();
        _delay_ms(t1);
		znak1[4]=prevod();
        _delay_ms(t1);
		
		
		znak2[0]=prevod();
        _delay_ms(t1);
		znak2[1]=prevod();
        _delay_ms(t1);
		znak2[2]=prevod();
        _delay_ms(t1);
		znak2[3]=prevod();
        _delay_ms(t1);
		znak2[4]=prevod();
        
		
		prumer1=((znak1[0]+znak1[1]+znak1[2]+znak1[3]+znak1[4])/5);
        prumer2=((znak2[0]+znak2[1]+znak2[2]+znak2[3]+znak2[4])/5);

		

		

	

		if (prumer2>(0x288)) {

			PORTB &= ~(_BV(PB0));
			_delay_ms(10000);
			PORTD &= ~(_BV(PD2));
		
		_delay_ms(10000);
		PORTB |= _BV(PB0);
	//	PORTD |= _BV(PD0);
        
	   }
	   	

	}
}

